import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import { jwtDecode } from 'jwt-decode';
import ElementUI from 'element-ui'; // 引入 Element UI
import 'element-ui/lib/theme-chalk/index.css'; // 引入 Element UI 样式
import axios from 'axios'
import VueAxios from 'vue-axios'
axios.defaults.baseURL="http://localhost:8087"

// 添加请求拦截器，在请求头中加authentication
axios.interceptors.request.use(
  
  config => {
    // 判断请求的 URL 是否为 /login
    if (config.url.includes('/login') || config.url.includes('/register')) {
      return config;
    }
    // 在发送请求之前检查JWT令牌是否过期
    const token = sessionStorage.getItem('authentication');
    if (token) {
      const decodedToken = jwtDecode (token);
      const currentTime = Date.now() / 1000; // 将时间转换为秒
      if (decodedToken.exp < currentTime) {
        // 如果令牌已过期，跳转到登录页面
        vue.$router.push('/login');
      } else {
        // 如果令牌未过期，将令牌添加到请求头中
        config.headers.authentication = token;
      }
      // config.headers.authentication = sessionStorage.getItem('authentication');
    }else{
      vue.$router.push('/login');
    }
 
    return config;
  },
  error => {
    return Promise.reject(error);
  }
  
);
// Vue.prototype.$axios = axios
Vue.use(VueAxios, axios)
Vue.use(ElementUI); // 使用 Element UI

Vue.config.productionTip = false

const vue=new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
